/**
 * APIScript.java
 * ************************** 
 * @date Apr 19, 2011
 * @author Michele Tamburini
 * 
 * **************************
 */
package infrastructureAPI.backendGate;

import infrastructureAPI.algorithms.APIFunction;

/**
 * Description:
 * An APIScript is a script called by the cloud user 
 * from the Front-End of the P2PCloudSystem.
 * The APIScript interface defines the standard behavior of all scripts
 * that have to implement a feature of the infrastructure level.
 * The APIScript interface extends the APIFunction. 
 * Because of this inheritance the APIScript is supposed
 * to implement an algorithm able to provide a feature of
 * the cloud. 
 * In addition it has to support the script actions,
 * in order to give the user a good way to handle it. 
 *
 */
public interface APIScript extends APIFunction {
	
	/**
	 * Shows the usage of the current script returned as
	 * a String. 
	 * @return usage : String
	 */
	public String showUsage();
	
	/**
	 * Returns the minimum number of parameters required
	 * by the current script. 
	 * @return numberOfMandatoryParameters : int
	 */
	public int mandatoryParametersNumber();

}
